home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 010 / target.arc / TARGET.BAS (.txt) next >
Encoding:
GW-BASIC  |  1984-04-24  |  4.3 KB  |  141 lines

  1. 10  '###########################################################################
  2. 20  '#                                                                        ##
  3. 30  '#               TARGET: AN ARCADE-TYPE SHOOTING GAME                     ##
  4. 40  '#                               BY                                       ##
  5. 50  '#                         BRIAN D. MANN                                  ##
  6. 60  '#    628 ELGIN TERRACE, RICHMOND VA. 23225  (804) 320-4901               ##
  7. 70  '#    IF YOU DISCOVER ANY PROBLEMS WITH THIS CODE, OR HAVE ANY            ##
  8. 80  '#    QUESTIONS, PLEASE FEEL FREE TO CALL ME.                             ##
  9. 90  '#                                                                        ##
  10. 100  '#                                                                       ##
  11. 110  '# COPYRIGHT OCTOBER, 1982 BY BRIAN D. MANN. FOR NONPROFIT DISTRIBUTION  ##
  12. 120  '# ONLY. ALL RIGHTS RESERVED.                                            ##
  13. 130  '##########################################################################
  14. 140  R = INT(VAL(RIGHT$(TIME$,2))*544):RANDOMIZE(R)
  15. 150  DIM X(297):DIM Y(297)
  16. 160  KEY OFF
  17. 170  FOR I=1 TO 10:KEY I,"":NEXT:KEY 1,"RUN"+CHR$(13):KEY 2,"WIDTH 80"+CHR$(13)
  18. 180  SCREEN 1,0
  19. 190  CLS
  20. 200  WIDTH 40
  21. 210  LOCATE 12,17:PRINT "TARGET"
  22. 220  LOCATE 15,19: PRINT "by"
  23. 230  LOCATE 18,14:PRINT "BRIAN D. MANN"
  24. 240  LOCATE 24,10:PRINT "PRESS ANY KEY TO BEGIN"
  25. 250  A$=INKEY$:IF A$="" THEN 250
  26. 260  GOSUB 400
  27. 270  GOSUB 1290
  28. 280  GOSUB 950
  29. 290  CLS
  30. 300  LOCATE 10,20:PRINT "TARGET"
  31. 310  LOCATE 12,1:PRINT "DO YOU WISH EASY(3), MODERATE(4),                   HARD(5), OR IMPOSSIBLE(6)"
  32. 320  A$ = INKEY$:IF A$ = "" THEN 320
  33. 330  SPEED = VAL(A$)
  34. 340  SCREEN 1,0
  35. 350  LOOP = 0
  36. 360  HIT=0:MISS=0
  37. 370  DEF SEG
  38. 380  IF REPEAT = 1 THEN GOTO 530
  39. 390  GOTO 530
  40. 400  REM DRAW AND SAVE CROSSHAIRS (CRSHRS%)
  41. 410  LINE (5,4)-(5,25)
  42. 420  LINE (5,4)-(10,4)
  43. 430  LINE (5,25)-(10,25)
  44. 440  LINE (35,4)-(35,25)
  45. 450  LINE (30,4)-(35,4)
  46. 460  LINE (30,25)-(35,25)
  47. 470  CIRCLE (20,14),8
  48. 480  LINE (16,14)-(24,14)
  49. 490  LINE (20,10)-(20,18)
  50. 500  DIM CRSHRS%(150)
  51. 510  GET(0,0)-(35,25),CRSHRS%
  52. 520  RETURN
  53. 530  CLS' BEGINNING OF MAIN LOOP
  54. 540  FOR I = 1 TO 100
  55. 550  X=(RND(1)*318)+1:Y=(RND(1)*198)+1
  56. 560  PSET(X,Y)
  57. 570  NEXT
  58. 580  X1=140:Y1=80
  59. 590  POKE 106,0
  60. 600  YS=7:XS=10
  61. 610  P = 0
  62. 620  S1=INT(RND*170+1):S2=INT(RND*170)+1
  63. 630  IF X1<1 THEN X1=1
  64. 640  IF X1>280 THEN X1=280
  65. 650  IF Y1<1 THEN Y1=1
  66. 660  IF Y1>170 THEN Y1=170
  67. 670  PUT(X1,Y1),CRSHRS%,XOR
  68. 680  P =P+SPEED:IF   P >297 THEN 1130
  69. 690  X(P) = P
  70. 700  Y(P) = INT(((S2-S1)/297)*X(P))+S1
  71. 710  PUT (X(P),Y(P)),S%,XOR
  72. 720  FOR D1=1 TO 10:NEXT
  73. 730  POKE 160,0
  74. 740  A$=""
  75. 750  A$ = INKEY$: PUT(X(P),Y(P)),S%,XOR:IF LEN(A$) < 2 AND A$<> " " THEN 680 ELSE A =ASC(RIGHT$(A$,1))
  76. 760  IF A=32 THEN PUT(X1,Y1),CRSHRS%,XOR:GOTO 910
  77. 770  PUT(X1,Y1),CRSHRS%,XOR
  78. 780  ON A-70 GOSUB 800,810,820,830,840,850,860,870,880,890,900
  79. 790  GOTO 630
  80. 800  SOUND 100,1:X1=X1-XS:Y1=Y1-YS:RETURN
  81. 810  SOUND 125,1:Y1=Y1-YS:RETURN
  82. 820  SOUND 150,1:X1=X1+XS:Y1=Y1-YS:RETURN
  83. 830  RETURN
  84. 840  SOUND 200,1:X1=X1-XS:RETURN
  85. 850  RETURN
  86. 860  SOUND 200,1:X1=X1+XS:RETURN
  87. 870  RETURN
  88. 880  SOUND 300,1:X1=X1-XS:Y1=Y1+YS:RETURN
  89. 890  SOUND 325,1:Y1=Y1+YS:RETURN
  90. 900  SOUND 350,1:X1=X1+XS:Y1=Y1+YS:RETURN
  91. 910  SOUND 40,1:LINE (1,199)-(X1+16,Y1+10),3:LINE (319,199)-(X1+16,Y1+10),3:FOR W1=1 TO 3:NEXT
  92. 920  LINE (1,199)-(X1+16,Y1+10),0:LINE (319,199)-(X1+16,Y1+10),0:POKE 160,0
  93. 930  IF X1>X(P) -16  AND X1<X(P) -4  AND Y1 >Y(P) - 20 AND Y1 < Y(P)-6  THEN 940 ELSE 630
  94. 940  PUT (X1,Y1),E%,XOR:FOR I%=100 TO 1000 STEP 25:SOUND I%,1:NEXT:PUT (X1,Y1),E%,XOR:HIT=HIT+1:LOOP=LOOP+1:IF LOOP=5 THEN 1160 ELSE 580
  95. 950  DEF SEG
  96. 960  CLS
  97. 970  LOCATE 1,10:PRINT "YOUR ENEMY.":LOCATE 5,1:PRINT "YOUR MISSION: DESTROY HIM":PRINT
  98. 980  PRINT "USE THE KEY PAD TO MOVE YOUR SIGHTS"
  99. 990  PUT (120,60),CRSHRS%,PSET
  100. 1000  LOCATE 13,1:PRINT "ON TO THE ENEMY SHIP AND THEN PRESS":PRINT:PRINT"             THE SPACE BAR TO FIRE."
  101. 1010  PRINT
  102. 1020  PRINT "YOU WILL HAVE 5 CHANCES"
  103. 1030  PRINT:PRINT "PRESS ANY KEY TO BEGIN"
  104. 1040  REM DRAW AND SAVE SHIP (S%)
  105. 1050  CIRCLE (28,5),2
  106. 1060  LINE (26,6)-(20,5),,BF
  107. 1070  LINE (20,6)-(10,4),,BF
  108. 1080  LINE (13,6)-(15,9),,BF
  109. 1090  LINE (8,9)-(17,11),,BF
  110. 1100  DIM S%(150)
  111. 1110  GET (8,5)-(30,11),S%
  112. 1120  A$ = INKEY$:IF A$="" THEN 1120 ELSE RETURN
  113. 1130  PUT(X1,Y1),CRSHRS%,XOR
  114. 1140  SOUND 40,20
  115. 1150  LOOP =LOOP+1:IF LOOP=5 THEN 1160 ELSE 580
  116. 1160  REM **********END OF ROUND SUMMARY
  117. 1170  CLS: PRINT"YOU HIT ";HIT;" SHIPS OUT OF FIVE."
  118. 1180  PRINT:PRINT
  119. 1190  IF HIT<=2 THEN PRINT "YOU COULDN'T HIT THE BROAD SIDE OF A    VULCAN MOON!!
  120. 1200  IF HIT=3 THEN PRINT "WITH TRAINING, YOU MIGHT BE ABLE TO     CLEAN THE GUN!"
  121. 1210  IF HIT=4 THEN PRINT "WELL, NOT BAD BUT THE ONE THAT GOT AWAY JUST DESTROYED YOUR HOME PLANET!"
  122. 1220  IF HIT=5 THEN PRINT "GOOD SHOOTING!!! CAN YOU DO IT AGAIN?"
  123. 1230  PRINT:PRINT
  124. 1240  INPUT "DO YOU WISH TO PLAY AGAIN (Y/N)?";A$
  125. 1250  POKE 106,0
  126. 1260  IF A$ = "Y" OR A$ = "y" THEN GOTO 1280
  127. 1270  IF A$ = "N" OR A$ = "n" THEN END ELSE GOTO 1230
  128. 1280  REPEAT = 1: GOTO 290
  129. 1290  REM ############# EXPLOSION DRAW AND SAVE
  130. 1300  CLS
  131. 1310  DEF SEG
  132. 1320  DEFINT E
  133. 1330  DIM E%(130)
  134. 1340  'CLS
  135. 1350  OPEN "TARGET.PIC" FOR INPUT AS #1
  136. 1360  FOR Z = 0 TO 129
  137. 1370  INPUT#1, E%(Z)
  138. 1380  NEXT
  139. 1390  CLOSE
  140. 1400  RETURN
  141.